package com.dabai.iot.core.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 产品输入实体类
 *
 * @author kev1n
 */
@Data
public class ProductInput implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 产品名称
     */
    @Schema(description = "产品名称")
    @NotBlank(message = "产品名称不能为空")
    @Size(min = 1, max = 32, message = "产品名称长度必须在1-32之间")
    private String productName;

    /**
     * 产品描述
     */
    @Schema(description = "产品描述")
    @Size(max = 256, message = "产品描述长度不超过256个字符")
    private String productDesc;

    /**
     * 通信协议
     */
    @Schema(description = "通信协议")
    @NotNull
    private String protocol;

    /**
     * 数据格式 1:JSON 2:Plaintext
     */
    @Schema(description = "数据格式 1:JSON 2:Plaintext")
    @NotNull
    private String dataType;

    /**
     * 安全类型 1:一型一密 2:一机一密
     */
    @Schema(description = "安全类型 1:一型一密 2:一机一密")
    @NotNull
    private String securityType;

    /**
     * 连网方式
     */
    @Schema(description = "连网方式")
    @NotNull
    private String connectType;

}
